`timescale 1ns/1ps
`default_nettype none
// TinyBus dmem 从设备适配器（零等待版）
// 说明：CPU 侧已经把 wdata 对齐到正确字节 lane；dmem 内部不做移位
module tinybus_dmem_slave #(
  parameter DEPTH_BYTES = 64*1024
)(
  input  wire        clk,
  input  wire        rstn,
  // ---- TinyBus 主->从 ----
  input  wire        req_valid,
  input  wire [31:0] req_addr,
  input  wire [31:0] req_wdata,
  input  wire [3:0]  req_be,
  input  wire        req_we,
  // ---- TinyBus 从->主 ----
  output wire        req_ready,
  output wire        rsp_valid,
  output wire [31:0] rsp_rdata,
  output wire        rsp_err
);

  // 直接用你的 dmem（字节数组，按字对齐读；不移位）
  wire [31:0] dmem_rdata;

  dmem #(.DEPTH_BYTES(DEPTH_BYTES)) u_dmem (
    .clk    (clk),
    .rstn   (rstn),
    .addr   (req_addr),
    .wdata  (req_wdata),           // ★ CPU 侧对齐后的写数据
    .byte_we(req_we ? req_be : 4'b0000),
    .rdata  (dmem_rdata)
  );

  // 零等待实现：随时可接收；同拍返回
  assign req_ready = 1'b1;
  assign rsp_valid = req_valid;
  assign rsp_rdata = dmem_rdata;
  assign rsp_err   = 1'b0;

endmodule
`default_nettype wire
